package com.qabaco.odondata.model.entities;

import java.io.Serializable;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Transient;

@Entity
@NamedQueries({
  @NamedQuery(name = "Caso.findAll", query = "select o from Caso o")
})
@Table(name = "\"casos\"")
public class Caso implements Serializable {
    @Column(name="descripcion")
    private String descripcion;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="id", nullable = false)
    private Integer id;
    @Column(name="id_imagenes_grp")
    private Integer idImagenesGrp;
    @Column(name="id_padre")
    private Integer idPadre;
    @Column(name="nombre")
    private String nombre;
    
    @Transient
    private List<Imagen> listaImagenes;
    
    @Transient
    private List<Caso> listaCasos = new ArrayList<Caso>();
    
    @Transient
    private Integer codImagenPri;  
    
    @Transient         
    private String nombreImagenPri;

    public Caso() {
    }

    /*public Caso(Integer descripcion, Integer id, Integer id_imagenes_grp,
                Integer id_padre, String nombre) {
        this.descripcion = descripcion;
        this.id = id;
        this.id_imagenes_grp = id_imagenes_grp;
        this.id_padre = id_padre;
        this.nombre = nombre;
    }*/

   

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }   

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public void setListaImagenes(List<Imagen> listaImagenes) {
        this.listaImagenes = listaImagenes;
    }

    public List<Imagen> getListaImagenes() {
        return listaImagenes;
    }

    public void setIdImagenesGrp(Integer idImagenesGrp) {
        this.idImagenesGrp = idImagenesGrp;
    }

    public Integer getIdImagenesGrp() {
        return idImagenesGrp;
    }

    public void setIdPadre(Integer idPadre) {
        this.idPadre = idPadre;
    }

    public Integer getIdPadre() {
        return idPadre;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setListaCasos(List<Caso> listaCasos) {
        this.listaCasos = listaCasos;
    }

    public List<Caso> getListaCasos() {
        return listaCasos;
    }

    public void setCodImagenPri(Integer codImagenPri) {
        this.codImagenPri = codImagenPri;
    }

    public Integer getCodImagenPri() {
        if (getListaImagenes() != null && getListaImagenes().size() > 0)
            codImagenPri = getListaImagenes().get(0).getCodImagen(); // Codigo de imagen principal
        else 
            codImagenPri = null;
        return codImagenPri;
    }

    public void setNombreImagenPri(String nombreImagenPri) {
        this.nombreImagenPri = nombreImagenPri;
    }

    public String getNombreImagenPri() {
        if (getListaImagenes() != null && getListaImagenes().size() > 0)
            nombreImagenPri = getListaImagenes().get(0).getNombre(); // Nombre de imagen principal
        else 
            nombreImagenPri = null;
        return nombreImagenPri;
    }
}
